# 设置最低Cmake版本，根据自己的环境和电脑安装的版本配置
cmake_minimum_required(VERSION 3.22)

# 工程名称
project(PROJECT_CPP)

# 设定编译参数
set(CMAKE_CXX_STANDARD 11)              # 指定 C++ 版本
set(CMAKE_BUILD_TYPE "Release")         # 调试使用Debug，可以查看中间变量；发布使用Release，运行速度快

# 设置可执行文件输出路径
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/bin)
# # 设置库的输出路径
set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/lib)

# 设置头文件路径
set(OPENCV_DIR "D:/CPP_Tools/OpenCV-4.5.3/build")
set(EIGEN_DIR "D:/CPP_Tools/eigen-3.4.0")
include_directories(
    ${CMAKE_CURRENT_SOURCE_DIR}/include
    ${OPENCV_DIR}
    ${EIGEN_DIR}
)

# 设置源文件路径
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/src SRC_DIR)

# 添加OpenCV库和glog库
# 要使用该库，需要设置环境变量
find_package(OpenCV REQUIRED)
find_package(GLOG REQUIRED)

# 编译mymath，生成静态库
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/src/mymath SUB_SRC_DIR)
add_library(mymath ${SUB_SRC_DIR})

# 编译myprint，生成动态库
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/src/myprint SUM_SRC_DIR)
add_library(myprint SHARED ${SUM_SRC_DIR})

# 生成可执行文件
add_executable(main ${SRC_DIR})

# 链接所有库
target_link_libraries(main ${OpenCV_LIBS} myprint mymath glog::glog)
# target_link_libraries(main ${OpenCV_LIBS})
